package co.yixiang.modules.monitoring.fluorite.service;

import co.yixiang.modules.monitoring.fluorite.entity.FluoriteQueryForm;
import co.yixiang.modules.monitoring.fluorite.entity.dto.*;

import java.util.List;


public interface FluoriteService {

    /**
     * 查询设备列表
     * @param queryForm 请求参数
     * @return List<DeviceDto>
     */
   List<DeviceDto> deviceList(FluoriteQueryForm queryForm);

    /**
     * 获取单个设备信息
     * @param queryForm 请求参数
     * @return DeviceInfoDto
     */
    DeviceInfoDto deviceInfo(FluoriteQueryForm queryForm);

    /**
     * 获取设备状态信息
     * @param queryForm 请求参数
     * @return String
     */
    String deviceStatusGet(FluoriteQueryForm queryForm);

    /**
     * 获取指定设备的通道信息
     * @param queryForm 请求参数
     * @return List<CameraDto>
     */
    List<CameraDto> deviceCameraList(FluoriteQueryForm queryForm);

    /**
     * 获取摄像头列表
     * @param queryForm 请求参数
     * @return List<CameraDto>
     */
    List<CameraDto> cameraList(FluoriteQueryForm queryForm);


    /**
     * 增加设备
     * @param queryForm 请求参数
     * @return String
     */
    String deviceAdd(FluoriteQueryForm queryForm);

    /**
     * 删除设备
     * @param queryForm 请求参数
     * @return String
     */
    String deviceDelete(FluoriteQueryForm queryForm);

    /**
     * 开通直播功能
     * @param queryForm 请求参数
     * @return String
     */
    String videoOpen(FluoriteQueryForm queryForm);

    /**
     * 关闭直播功能
     * @param queryForm 请求参数
     * @return String
     */
    String liveClose(FluoriteQueryForm queryForm);

    /**
     * 获取播放地址
     * @param queryForm 请求参数
     * @return DeviceLiveDto
     */
    DeviceLiveDto liveAddressV2(FluoriteQueryForm queryForm);

    /**
     * 获取播放地址
     * @param queryForm 请求参数
     * @return DeviceLiveDto
     */
    DeviceLiveV2Dto liveAddress(FluoriteQueryForm queryForm);

   /**
    * 获取token
    * @return token
    *
    */
   String getAccessToken();



}
